#ifndef GAMEWINDOW_H_
#define GAMEWINDOW_H_

#include <SDL/SDL.h>

struct WindowResolution {
	int width;
	int height;
};

class GameWindow {
public:
	GameWindow();

	enum Mode {
		WINDOWED, FULLSCREEN
	};

	void setTitle(char* title);
	char* getTitle();

	void resize(int width, int height);
	void fullscreen();
	void window();
	void toggleFullScreen();
	WindowResolution getCurrentResolution();
	virtual ~GameWindow();

	WindowResolution getFullScreenResolution() const {
		return fullScreenResolution;
	}

	WindowResolution getWindowedResolution() const {
		return windowedResolution;
	}

	void setFullScreenResolution(WindowResolution fullScreenResolution) {
		this->fullScreenResolution = fullScreenResolution;
	}

	void setWindowedResolution(WindowResolution windowedResolution) {
		this->windowedResolution = windowedResolution;
	}

	int getMode() const {
		return mode;
	}

	SDL_Surface *getScreen() const {
		return screen;
	}

	void setScreen(SDL_Surface *screen) {
		this->screen = screen;
	}

private:
	Mode mode;

	WindowResolution windowedResolution;
	WindowResolution fullScreenResolution;

	SDL_Surface* screen;
};

#endif /* GAMEWINDOW_H_ */
